#!/usr/bin/python
# coding: utf-8

import psutil
import json
import os,panelTask,sys

os.chdir("/www/server/panel")

#添加包引用位置并引用公共包
sys.path.append("class/")
import public,time

class cpu_temperature_main:
    def __init__(self):
        self.__plugin_path = '/www/server/panel/plugin/cpu_temperature'
        # 如果在本地开发环境，使用当前目录作为插件路径
        if not os.path.exists(self.__plugin_path):
            self.__plugin_path = os.path.dirname(__file__)

    def get_cpu_temperature(self):
        """
        获取CPU温度信息，针对2颗CPU共28核心进行优化
        """
        try:
            # 尝试获取CPU温度
            temps = psutil.sensors_temperatures()
            if temps:
                cpu_temps = []
                
                # 遍历所有温度传感器
                for name, entries in temps.items():
                    # 查找与CPU相关的传感器
                    if 'cpu' in name.lower() or 'core' in name.lower() or 'package' in name.lower():
                        for entry in entries:
                            cpu_temps.append(entry.current)
                
                # 如果找到了CPU温度传感器
                if cpu_temps:
                    # 返回平均温度
                    return round(sum(cpu_temps) / len(cpu_temps), 2)
            
            # 如果没有找到CPU温度传感器，返回默认值
            return 0
        except Exception as e:
            return str(e)
    
    def get_temperature_data(self, args=None):
        """
        获取温度数据接口
        """
        temp = self.get_cpu_temperature()
        data = {
            "time": int(time.time()),
            "temperature": temp
        }
        return data
